package com.shangma.cn;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * 开发人员: 辉哥真球帅
 * 联系方式: zhengzhoudaxuevip@163.com
 * 创建时间: 2021/10/7  16:37
 * 文件含义:
 * <p>
 * springBoot的复习
 * 1： SpringBoot
 * 2:  SpringBoot有没有新技术
 * 在SpringBoot的世界中  没有新技术，都把现有的技术进行整合，让程序员快速搭建工程 摒弃掉复杂而又固定的配置
 * 让程序员只关注业务本身 而不再为繁琐的 记不住的 扯淡的配置 所烦恼
 * <p>
 * SpringBoot的宗旨 让程序快速入手项目 快速搭建工程
 * <p>
 * 3： SpringBoot的四大核心
 * 起步依赖： springBoot 把一些常用的功能 都封装起来 形成一个最小的包 把这些功能组装后 形成一个新的项目 这个项目有个特点都叫做 xxxxx starter
 * 自动配置:  在起步依赖的基础上 使用XXXXAutoConfiguration自动配置
 * <p>
 * <p>
 * 监控 springboot-admin  专门监控我们项目 如果项目出现问题 可以发预警
 * 命令行工具
 * <p>
 * 4： SpringBoot的项目创建
 * <p>
 * 5： SpringBoot的其他相关
 * 配置文件
 * 配置文件的取值
 * <p>
 * springBoot对web层支持
 * 1：模板引擎
 * 2：springmvc相关的功能
 * 静态资源
 * 拦截器
 * 异常处理
 * 首页
 * banner
 * 文件上传
 * springBoot对持久层支持
 * 和各种持久层框架整合
 * <p>
 * springBoot对缓存层的支持
 * 和redis整合  以及 redis整合mybatis做缓存
 * springBoot对业务层的支持
 * 事务的支持
 * springBoot的内部原理
 * <p>
 * SpringBoot的优化
 */
@SpringBootApplication
@EnableTransactionManagement
@MapperScan(basePackages = {"com.shangma.cn.mapper"})
public class ProjectApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProjectApplication.class);
    }

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
